home *** CD-ROM | disk | FTP | other *** search
-
- --------------------------------------------------
- -- Created By: <Sten Huebler>
- -- Description: <Patrols Path>
- --------------------------
- --
-
- AIBehaviour.IGTalking = {
- Name = "IGTalking",
-
-
-
- XTime = 1,
- XAttack = 1,
- PathStep = 0,
- Busy = 0,
-
-
- Sounds = {
- Ivan = Sound:Load3DSound("SOUNDS/E3DIALOG/i_there_open_fire.wav",SOUND_UNSCALABLE,255,5,15),
- Ivan2 = Sound:Load3DSound("SOUNDS/E3DIALOG/i_i-see_him.wav",SOUND_UNSCALABLE,255,5,15),
- Steve = Sound:Load3DSound("SOUNDS/e3ai/hey_over_there.wav",SOUND_UNSCALABLE,255,5,15),
- Rob = Sound:Load3DSound("SOUNDS/E3DIALOG/r_i_see_him.wav",SOUND_UNSCALABLE,255,5,15),
- Rob2 = Sound:Load3DSound("SOUNDS/E3DIALOG/r_target.wav",SOUND_UNSCALABLE,255,5,15),
- Rob3 = Sound:Load3DSound("SOUNDS/E3DIALOG/r_move.wav",SOUND_UNSCALABLE,255,5,15),
- Ray = Sound:Load3DSound("SOUNDS/E3DIALOG/ry_there_he_is.wav",SOUND_UNSCALABLE,255,5,15),
- Ray2 = Sound:Load3DSound("SOUNDS/E3DIALOG/ry_over_there.wav",SOUND_UNSCALABLE,255,5,15),
- Ray3 = Sound:Load3DSound("SOUNDS/E3DIALOG/ry_open_fire.wav",SOUND_UNSCALABLE,255,5,15),
-
- talk01 = Sound:Load3DSound("SOUNDS/ai/dialog/m3a.wav",SOUND_UNSCALABLE,255,2,13),
- talk02 = Sound:Load3DSound("SOUNDS/ai/dialog/m3b.wav",SOUND_UNSCALABLE,255,2,13),
- talk03 = Sound:Load3DSound("SOUNDS/ai/dialog/m2a.wav",SOUND_UNSCALABLE,255,2,13),
- },
-
- -- SYSTEM EVENTS -----
- ---------------------------------------------
- OnSelected = function( self, entity )
- end,
- ---------------------------------------------
- OnSpawn = function( self, entity )
- -- called when enemy spawned or reset
-
-
- -------------------------------- IDLE ---------------------------
-
-
- -- Make default Idle
- AI:CreateGoalPipe("AIS_DefaultIdle");
- AI:PushGoal("AIS_DefaultIdle","signal",0,1,"PlayDefaultIdleAnimation",0);
- AI:PushGoal("AIS_DefaultIdle","timeout",1,3);
- AI:PushGoal("AIS_DefaultIdle","AIS_PatrolPath");
-
- -- Make _talk01
- AI:CreateGoalPipe("AIS_talk01");
- AI:PushGoal("AIS_talk01","timeout",1,9.2);
- AI:PushGoal("AIS_talk01","signal",0,1,"AIS_RandomIdle",0);
-
- -- Make _talk01
- AI:CreateGoalPipe("AIS_talk02");
- AI:PushGoal("AIS_talk02","timeout",1,3.1);
- AI:PushGoal("AIS_talk02","signal",0,1,"AIS_RandomIdle",0);
-
- -- Make _talk01
- AI:CreateGoalPipe("AIS_talk03");
- AI:PushGoal("AIS_talk03","timeout",1,9.2);
- AI:PushGoal("AIS_talk03","signal",0,1,"AIS_RandomIdle",0);
- -------------------------------------------------------------------
-
-
-
- self:AIS_RandomIdle(entity,sender);
- end,
- ---------------------------------------------
- OnActivate = function( self, entity )
- -- called when enemy receives an activate event (from a trigger, for example)
- end,
- ---------------------------------------------
- OnNoTarget = function( self, entity )
- -- called when the enemy stops having an attention target
- System:LogToConsole(entity:GetName().."I do not have a target");
- end,
- ---------------------------------------------
- OnPlayerSeen = function( self,entity )
- System:LogToConsole(entity:GetName().." .. Seen");
- entity:ChangeAIParameter( AIPARAM_SIGHTRANGE, 40);
- self.XTime = random(1,9);
- if (self.XTime == 1) then
- entity:Say(entity.Behaviour.Sounds.Ivan);
- elseif (self.XTime == 2) then
- entity:Say(entity.Behaviour.Sounds.Ivan2);
- elseif (self.XTime == 3) then
- entity:Say(entity.Behaviour.Sounds.Steve);
- elseif (self.XTime == 4) then
- entity:Say(entity.Behaviour.Sounds.Rob);
- elseif (self.XTime == 5) then
- entity:Say(entity.Behaviour.Sounds.Rob2);
- elseif (self.XTime == 6) then
- entity:Say(entity.Behaviour.Sounds.Rob3);
- elseif (self.XTime == 7) then
- entity:Say(entity.Behaviour.Sounds.Ray);
- elseif (self.XTime == 8) then
- entity:Say(entity.Behaviour.Sounds.Ray2);
- elseif (self.XTime == 9) then
- entity:Say(entity.Behaviour.Sounds.Ray3);
- end
- entity:SelectPipe(0,"AIS_CoverDropBeacon");
- AI:Signal(SIGNALFILTER_GROUPONLY, 1, "OnPlayerSeenByGroupMember", entity.id);
- end,
- ---------------------------------------------
- OnEnemySeen = function( self, entity )
- -- called when the enemy sees a foe which is not a living player
- end,
- ---------------------------------------------
- OnEnemyMemory = function( self, entity )
- -- called when the enemy can no longer see its foe, but remembers where it saw it last
- end,
- ---------------------------------------------
- OnInterestingSoundHeard = function( self, entity )
- -- called when the enemy hears an interesting sound
- end,
- ---------------------------------------------
- OnThreateningSoundHeard = function( self, entity )
- -- called when the enemy hears a scary sound
- entity:ChangeAIParameter( AIPARAM_SIGHTRANGE, 40);
- end,
- ---------------------------------------------
- OnReload = function( self, entity )
- -- called when the enemy goes into automatic reload after its clip is empty
- end,
- ---------------------------------------------
- OnGroupMemberDied = function(self, entity, sender)
- System:LogToConsole(entity:GetName().." .. buddy died");
- entity:SelectPipe(0,"AIS_TeamMemberDiedIndoor", sender.id);
- end,
- ---------------------------------------------
- OnNoHidingPlace = function( self, entity, sender )
- -- called when no hiding place can be found with the specified parameters
- System:LogToConsole(entity:GetName().." .. no hidding place");
- local XRandom = random(1,2);
- if (XRandom == 1) then
- entity:SelectPipe(0,"AIS_SideStepLeft");
- elseif (XRandom == 2) then
- entity:SelectPipe(0,"AIS_SideStepRight");
- end
- end,
- ---------------------------------------------
- OnReceivingDamage = function ( self, entity, sender)
- -- called when the enemy is damaged
- --AI:Log(entity:GetName().." (DEFAULT) AIEVENT - OnReceivingDamage");
- entity:ChangeAIParameter( AIPARAM_SIGHTRANGE,entity. );
- entity:SelectPipe(0,"SearchDamageCause");
- end,
-
-
- --------------------------- FUNCTIONS ------------------------------------
-
-
- AIS_RandomIdle = function (self, entity, sender)
- self.XTime = random(1,15);
- if (self.XTime <= 5) then
- entity:StartAnimation(0,"_talk01");
- entity:Say(entity.Behaviour.Sounds.talk01);
- entity:SelectPipe(0,"AIS_talk01");
- elseif (self.XTime <= 10) then
- entity:StartAnimation(0,"_talk02");
- entity:Say(entity.Behaviour.Sounds.talk02);
- entity:SelectPipe(0,"AIS_talk02");
- elseif (self.XTime <= 15) then
- entity:StartAnimation(0,"_talk03");
- entity:Say(entity.Behaviour.Sounds.talk03);
- entity:SelectPipe(0,"AIS_talk03");
- end
- end,
-
-
- PlayDefaultIdleAnimation = function (self, entity, sender)
- entity:StartAnimation(0,"sidle");
- end,
-
-
- AISF_CallForHelp = function (self, entity, sender)
- System:LogToConsole(entity:GetName().." .. CallForHelp");
- end,
-
-
- AISF_GoOn = function (self, entity, sender)
- --entity:SelectPipe(0,"AIS_GuardTraceAttack");
- end,
-
- OnPlayerSeenByGroupMember = function ( self, entity, sender)
- if (entity ~= sender) then
- entity:SelectPipe(0,"AIS_InvestigateSenderTarget", sender.id);
- else
- end
- end,
-
- }
-